package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;
import cn.wolfcode.mq.OrderMQResult;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {

    /**
     * 执行秒杀业务逻辑
     *
     * @param time
     * @param seckillId
     * @param phone
     * @return
     */
    String doSeckill(int time, Long seckillId, Long phone);

    /**
     * 超时取消的业务
     *
     * @param orderMQResult
     */
    void cancelTimeOutOrder(OrderMQResult orderMQResult);

    /**
     * 根据订单号，查找数据
     *
     * @param orderNo
     * @return
     */
    OrderInfo find(String orderNo);

    /**
     * 启动远程调用在线支付
     *
     * @param orderNo
     * @param type
     * @return
     */
    String payOnline(String orderNo, int type);

    /**
     * 异步回调数据
     *
     * @param orderNo
     */
    void paySuccess(String orderNo);

    /**
     * 线上支付回退
     *
     * @param orderInfo
     */
    void refund(OrderInfo orderInfo);

    /**
     * 启动积分支付
     *
     * @param orderNo
     * @param type
     */
    void payIntergral(String orderNo, int type);

    /**
     * 积分退款
     * @param orderInfo
     */
    void refundIntergral(OrderInfo orderInfo);
}
